From 1e9dacb7afa602d9e73da17966aed024298e84ba Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 22 Feb 2017 17:40:45 -0800
Subject: [PATCH] Add an option to disable expat

This patch replaces the existing --with-system-expat option with a
--with-expat={system,builtin,none} option, which allows to tell Python
whether we want to use the system expat (already installed), the expat
builtin the Python sources, or no expat at all (which disables the
installation of XML modules).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[ Andrey Smirnov: ported to Python 3.6 ]
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
[ Adam Duskett: ported to Python 3.10.0 ]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
 Makefile.pre.in |  5 ++++-
 configure.ac    | 24 +++++++++++++-----------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index 7162d9d3634..d9fae62aa9c 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -2111,7 +2111,6 @@ LIBSUBDIRS=	asyncio \
 		urllib \
 		venv venv/scripts venv/scripts/common venv/scripts/posix \
 		wsgiref \
-		$(XMLLIBSUBDIRS) \
 		xmlrpc \
 		zipfile zipfile/_path \
 		zoneinfo \
@@ -2271,6 +2270,10 @@ ifeq (@SQLITE3@,yes)
 LIBSUBDIRS += sqlite3
 endif
 
+ifeq (@EXPAT@,yes)
+LIBSUBDIRS += $(XMLLIBSUBDIRS)
+endif
+
 TEST_MODULES=@TEST_MODULES@
 
 .PHONY: libinstall
diff --git a/configure.ac b/configure.ac
index 748a16d7eab..1c902de8af3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3797,17 +3797,19 @@ LIBS="$withval $LIBS"
 [AC_MSG_RESULT([no])])
 
 # Check for use of the system expat library
-AC_MSG_CHECKING([for --with-system-expat])
-AC_ARG_WITH(
-  [system_expat],
-  [AS_HELP_STRING(
-     [--with-system-expat],
-     [build pyexpat module using an installed expat library, see Doc/library/pyexpat.rst (default is no)]
-  )], [], [with_system_expat="no"])
-
-AC_MSG_RESULT([$with_system_expat])
-
-AS_VAR_IF([with_system_expat], [yes], [
+AC_MSG_CHECKING(for --with-expat)
+AC_ARG_WITH(expat,
+            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
+            [],
+            [with_expat="builtin"])
+AC_MSG_RESULT($with_expat)
+AS_IF([test "$with_expat" != "none"],
+      [EXPAT=yes],
+      [PY_STDLIB_MOD_SET_NA([pyexpat])
+       EXPAT=no])
+AC_SUBST(EXPAT)
+
+AS_VAR_IF([with_expat], [system], [
   LIBEXPAT_CFLAGS=${LIBEXPAT_CFLAGS-""}
   LIBEXPAT_LDFLAGS=${LIBEXPAT_LDFLAGS-"-lexpat"}
   LIBEXPAT_INTERNAL=
-- 
2.43.0

